package doublepoint;

/**
 * @Author: 海琳琦
 * @Date: 2022/2/3 15:33
 * https://leetcode-cn.com/problems/backspace-string-compare/
 */
public class BackspaceCompare {

    public static boolean backspaceCompare(String s, String t) {
        //flag当作出现'#'的次数
        int flagS = 0, flagT = 0;
        int i = s.length() - 1, j = t.length() - 1;
        while (i >= 0 || j >= 0) {
            // 先找到 s 中第一个需要比较的字符（即去除 # 影响后的第一个待比较字符）
            while (i >= 0) {
                //1、当前字符为'#'号时，标志flagS++
                if (s.charAt(i) == '#') {
                    flagS++;
                    i--;
                //2、当前字符不为'#'号时，且表示flagS不等于0，即还存在'#'号未与数字进行抵消
                } else if (flagS > 0) {
                    flagS--;
                    i--;
                }else{
                    break;
                }
            }
            while (j >= 0) {
                if (t.charAt(j) == '#') {
                    flagT++;
                    j--;
                } else if (flagT > 0) {
                    flagT--;
                    j--;
                }else{
                    break;
                }
            }
            if (i >= 0 && j >= 0) {
                if (s.charAt(i) != t.charAt(j)) {
                    return false;
                }
            }else{
                //当字符与'#'抵消完之后，index都为-1
                if (i >= 0 || j >= 0) {
                    return false;
                }
            }
            i--;
            j--;
        }
        return true;
    }


    public static void main(String[] args) {
        boolean b = backspaceCompare("ab#c", "ab#c");
        System.out.println(b);
    }
}
